package com.atguigu.gamll.realtime.utils;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.ZoneOffset;
import java.time.format.DateTimeFormatter;
import java.util.Date;

// SimpleDateFormat 存在线程安全的问题
// 在封装日期工具类的时候，推荐使用JDK1.8之后提供的相关类型
// DateTimeFormatter  -- SimpleDateFormat
// LocalDateTime      -- Date
// Instant            -- Calendar
public class DateUtil {

    public final static DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

    // 将日期对象转换为字符串日期
    public static String toYMDHMS(Date date) {
        LocalDateTime localDateTime = LocalDateTime.ofInstant(date.toInstant(), ZoneId.systemDefault());
        return dtf.format(localDateTime);
    }

    // 将字符串日期转换为时间毫秒数
    public static Long toTs(String dateStr) {
        LocalDateTime localDateTime = LocalDateTime.parse(dateStr, dtf);
        return localDateTime.toInstant(ZoneOffset.of("+8")).toEpochMilli();
    }

}
